object TestGroups {

  /**
   * The unit test groups contain two sets of classes that should be executed on separate shards
   * on CI. Best to always add to the shard that executes in less time.
   */
  val testGroups = List(
    Set("tests.RenameLspSuite", "tests.ImplementationLspSuite",
      "tests.worksheets.WorksheetLspSuite",
      "tests.RangeFormattingWhenPastingSuite", "tests.ScalaToplevelSuite",
      "tests.DebugProtocolSuite", "tests.BillLspSuite",
      "tests.CodeLensLspSuite", "tests.codeactions.ImportMissingSymbolLspSuite",
      "tests.debug.StepDapSuite", "tests.debug.StackFrameDapSuite",
      "tests.FormattingLspSuite", "tests.NewFileLspSuite",
      "tests.CascadeLspSuite", "tests.DiagnosticsLspSuite",
      "tests.worksheets.WorksheetNoDecorationsLspSuite",
      "tests.CompletionLspSuite", "tests.TreeViewLspSuite",
      "tests.HoverLspSuite", "tests.SuperHierarchyLspSuite",
      "tests.DidFocusLspSuite", "tests.BuildServerConnectionLspSuite",
      "tests.BuildTargetsLspSuite", "tests.FileWatcherLspSuite",
      "tests.CurrentProjectCompileLspSuite",
      "tests.WindowStateDidChangeLspSuite", "tests.DocumentSymbolLspSuite",
      "tests.WorkspaceSymbolExpectSuite", "tests.digest.DigestsSuite",
      "tests.MtagsSuite", "tests.ChosenBuildServerSuite",
      "tests.SemanticdbSuite", "tests.digest.MillDigestSuite",
      "tests.DocumentSymbolSuite", "tests.FoldingRangeSuite",
      "tests.JavadocSuite", "tests.MtagsEnrichmentsSuite",
      "tests.MtagsResolverSuite", "tests.CreateDirectoriesSuite",
      "tests.SbtOptsSuite", "tests.LineListenerSuite",
      "tests.debug.MessageIdAdapterSuite", "tests.MetalsEnrichmentsSuite",
      "tests.DefinitionDirectorySuite", "tests.SuperMethodSuite",
      "tests.StatusBarSuite", "tests.CompressionSuite",
      "tests.OpenBrowserSuite", "tests.FilenameLength",
      "tests.PrettyPrintTreeSuite", "tests.inlayHints.InlayHintsLspSuite",
      "tests.codeactions.RewriteBracesParensLspSuite",
      "tests.debug.CompletionDapSuite", "tests.debug.EvaluationDapSuite",
      "tests.FindTextInDependencyJarsSuite", "tests.TestSuitesProviderSuite",
      "tests.classFinder.FindAllClassesSuite", "tests.FuzzySuite",
      "tests.codeactions.ExtractValueLspSuite", "tests.clients.CommandSuite",
      "tests.JavaInteractiveSemanticdbSuite", "tests.SemVerSuite",
      "tests.codeactions.CompanionObjectSuite",
      "tests.codeactions.FlatMapToForComprehensionSuite",
      "tests.MtagsScala2Suite", "tests.UriEncoderDecoderSuite",
      "tests.DidFocusWhileCompilingLspSuite",
      "tests.testProvider.ScalatestFinderSuite", "tests.ScalaCliSuite",
      "tests.FoldingRangeScala3LineFolingOnlySuite",
      "tests.debug.BreakpointScalaCliDapSuite", "tests.CallHierarchyLspSuite",
      "tests.BspStatusSuite", "tests.ServerLivenessMonitorLspSuite",
      "tests.ToplevelWithInnerScala2Suite", "tests.ScaladocSymbolsSuite",
      "tests.SkipCommentsSuite", "tests.JarSourcesProviderSuite",
      "tests.inlayHints.InlayHintsHoverSuite", "tests.Java8Suite",
      "tests.RequestRegistrySuite", "tests.inlayHints.InlayHintsExpectSuite",
      "tests.worksheets.WorksheetInfiniteLoopSuite", "tests.TimeoutSuite",
      "tests.SingleFileSuite", "tests.SupportedScalaSuite",
      "tests.bestEffort.BestEffortCompilationSuite",
      "tests.codeactions.FilterMapToCollectCodeActionSuite",
      "tests.rangeFormatting.ScalaCliDependencyRangeFormatterPastingSuite",
      "tests.AutoImportLspSuite", "tests.ModuleStatusSuite",
      "tests.Scala3LspSuite", "tests.codeactions.RemoveInvalidImportLspSuite",
      "tests.FullyQualifiedNameLSPSuite", "tests.MetalsPasteSuite"),
    Set("tests.debug.BreakpointDapSuite", "tests.OnTypeFormattingSuite",
      "tests.ReferenceLspSuite", "tests.SuperMethodLspSuite",
      "tests.SyntaxErrorLspSuite", "tests.codeactions.StringActionsLspSuite",
      "tests.RangeFormattingSuite", "tests.CodeLensesLspSuite",
      "tests.DefinitionLspSuite", "tests.RelatedSuite",
      "tests.DocumentHighlightLspSuite", "tests.NewProjectLspSuite",
      "tests.WorkspaceSymbolLspSuite",
      "tests.codeactions.ImplementAbstractMembersLspSuite",
      "tests.RangeFormattingWhenSelectingSuite", "tests.AddPackageLspSuite",
      "tests.WarningsLspSuite", "tests.BspSwitchLspSuite",
      "tests.codeactions.CreateNewSymbolLspSuite",
      "tests.UnsupportedDebuggingLspSuite", "tests.CompilersLspSuite",
      "tests.QuickBuildSuite", "tests.StatusBarLspSuite",
      "tests.CancelCompileLspSuite", "tests.FoldingRangeLspSuite",
      "tests.DefinitionSuite", "tests.DismissedNotificationsSuite",
      "tests.JarTopLevelsSuite", "tests.DependencySourcesSuite",
      "tests.ChosenBuildToolSuite", "tests.ToplevelSuite",
      "tests.JdkSourcesSuite", "tests.digest.SbtDigestSuite",
      "tests.digest.MavenDigestSuite", "tests.UserConfigurationSuite",
      "tests.digest.GradleDigestSuite", "tests.DetectionSuite",
      "tests.NewFileTemplateSuite", "tests.ScalaVersionsSuite",
      "tests.HttpServerSuite", "tests.BatchedFunctionSuite",
      "tests.SbtVersionSuite", "tests.MessagesSuite",
      "tests.TrigramSubstringsSuite", "tests.SelectBspServerSuite",
      "tests.InverseDependenciesSuite", "tests.TimerSuite",
      "tests.FoldingRangesSuite", "tests.SelectionRangeLspSuite",
      "tests.rangeFormatting.MultilineStringRangeFormattingWhenPastingSuite",
      "tests.codeactions.ConvertPatternMatchLspSuite",
      "tests.ScalaToplevelLibrarySuite",
      "tests.rangeFormatting.MultilineStringRangeFormattingWhenSelectingSuite",
      "tests.rangeFormatting.IndentWhenPastingSuite",
      "tests.DebugDiscoverySuite", "tests.SemanticdbScala2Suite",
      "tests.codeactions.OrganizeImportsLspSuite",
      "tests.codeactions.InsertInferredTypeLspSuite",
      "tests.FoldingRangeScala2Suite", "tests.SystemProcessSuite",
      "tests.formatting.OnTypeFormattingSuite", "tests.DefinitionScala3Suite",
      "tests.AnsiFilterSuite", "tests.DocumentSymbolScala3Suite",
      "tests.ClassBreakpointSuite", "tests.FoldingRangeScala3Suite",
      "tests.ScalafmtConfigSuite", "tests.DocumentSymbolScala2Suite",
      "tests.StacktraceParseSuite", "tests.WorksheetDependencySourcesSuite",
      "tests.DefinitionScala2Suite", "tests.AnalyzeStacktraceLspSuite",
      "tests.ResolveStacktraceLocationLspSuite",
      "tests.codeactions.ExtractRenameMemberLspSuite",
      "tests.debug.DotEnvFileParserSuite", "tests.SemanticdbScala3Suite",
      "tests.troubleshoot.ProblemResolverSuite", "tests.BspBuildChangedSuite",
      "tests.classFinder.ClassBreakpointSuite",
      "tests.classFinder.ClassNameResolverSuite", "tests.JavaDefinitionSuite",
      "tests.IdentifierComparatorSuite", "tests.parsing.JavaEditDistanceSuite",
      "tests.PathTrieSuite", "tests.scalafix.ScalafixProviderLspSuite",
      "tests.SemanticHighlightLspSuite", "tests.MtagsScala3Suite",
      "tests.codeactions.ConvertToNamedArgumentsLspSuite",
      "tests.testProvider.TestSuitesProviderSuite",
      "scala.meta.internal.builds.tests.MillVersionSuite",
      "tests.FingerprintsLspSuite", "tests.JdkVersionSuite",
      "tests.codeactions.ScalaCliActionsSuite",
      "tests.codeactions.MillifyDependencyLspSuite",
      "tests.RenameFilesLspSuite", "tests.codeactions.ExtractMethodLspSuite",
      "tests.SemanticTokensExpectSuite",
      "tests.debug.DebugProtocolCancelationSuite", "tests.RemovedScalaLspSuite",
      "tests.scalafix.ScalafixRunOnlyLspSuite", "tests.ToplevelsScala2Suite",
      "tests.GradleRepositoriesTest", "tests.BuildIssueLspSuite",
      "tests.WorkspaceFoldersSuite", "tests.ReportsSuite",
      "tests.codeactions.MillifyScalaCliDependencyCodeActionSuite",
      "tests.RunProviderLensLspSuite", "tests.SemanticTokensLspSuite",
      "tests.ToplevelsScala3Suite", "tests.codeactions.InlineValueLspSuite",
      "tests.JavaToplevelSuite", "tests.ToplevelLibrarySuite",
      "tests.FoldingRangeScala3LineFoldingOnlySuite", "tests.LogBackupSuite",
      "tests.decorations.SyntheticDecorationsExpectSuite",
      "tests.codeactions.ConvertSingleLineCommentLspSuite",
      "tests.ServerLivenessMonitorSuite", "tests.ResetWorkspaceLspSuite",
      "tests.ToplevelWithInnerScala3Suite", "tests.OutlineLspSuite",
      "tests.FallbackDownloadSuite", "tests.mcp.McpConfigSuite",
      "tests.mcp.McpQueryLspSuite", "tests.mcp.McpRunTestSuite",
      "tests.mcp.McpServerLspSuite", "tests.mcp.McpFormatLspSuite",
      "tests.CredentialsSuite", "tests.ClassloaderModulesSupport",
      "tests.testProvider.ZioTestFinderSuite", "tests.mcp.McpPortConfigSuite",
      "tests.mcp.McpCompileToolsLspSuite", "tests.StackTraceMatcherSuite",
      "tests.JavaReferencesLspSuite"),
  )
}
